package com.itheima.edu.info.manager.service;

import com.itheima.edu.info.manager.dao.StudentDao;
import com.itheima.edu.info.manager.domain.Student;

public class StudentService {
    private StudentDao dao =new StudentDao();
    //业务员的添加功能
    //创建一个库管对象，指挥库管对象将学生对象添加到数据
    public boolean addStudent(Student stu) {
        //将库管添加后的返回结果回传给业务员
        return  dao.addStudent(stu);

    }

    //判断学号是否存在
    public boolean isExists(String id) {
        //拿到系统中当前最新的所有学生信息：指挥库管把数据仓库中现有的所有数据查出来
        Student[] stus =dao.findAllStudent();
        //表记为：先假设当前的学号不存在：falg=false
        boolean flag =false;
        //遍历当前系统中的所有学生信息，拿到每个学生对象的学号和当前传入id进行匹配
        for (int i = 0; i <stus.length ; i++) {
            //只有当前索引位置的元素不为null，并且当前索引位置的学生对象的学号和传进来的学号内容相等
            if(stus[i] !=null&&stus[i].getId().equals(id)){
                flag = true; //修改表记位为true
                break;
            }
        }
        //将匹配结果返回
        return  flag;
    }

    //查询所有学生
    public Student[] findAllStudent() {
        //指挥库管dao将仓库中所有数据都拿出来
        Student[] stus =dao.findAllStudent();
        //标记位：先假设stus中一个学生都没有
        boolean flag =false;
        for (int i = 0; i <stus.length ; i++) {
            if(stus[i]!=null){
                flag=true;
            }
        }
        //根据flag值来判断stus中有没有学生
        if(flag){
            //有学生，返回整个dao传过来的数组：有地址的数组
            return stus;
        }else {
            return  null;//没学生直接返回null
        }
    }

    //删除学生
    public void deleteStudent(String delId) {
        //指挥库管根据学号删除对应学生
       dao.deleteStudent(delId);
    }

    //修改学生
    public void updateStudent(String updateId, Student newStu) {
        //指挥库管根据学号修改学生信息
        dao.updateStudent(updateId,newStu);
    }
}
